﻿namespace Compass.Wasm.Shared.Categories;

public class MaterialItemDto:BaseDto
{
    #region 基本信息
    //物料编码
    private string mtlNumber;
    public string MtlNumber { get=> mtlNumber; set { mtlNumber=value;OnPropertyChanged(); } } 
    //中文描述/产品编号
    private string? description;
    public string? Description { get => description; set { description = value; OnPropertyChanged();} }
    //英文描述
    private string? enDescription;
    public string? EnDescription { get => enDescription; set { enDescription = value; OnPropertyChanged(); } }
    //类型/产品型号/配渐渐，天花分类
    private string type= "配件";
    public string Type { get => type; set { type = value; OnPropertyChanged(); } }
    //单位：PCS
    private Unit_e unit;
    public Unit_e Unit { get=>unit; set { unit=value;OnPropertyChanged(); } }
    #endregion
    #region 筛选信息
    //长
    private string? length;
    public string? Length { get=>length; set { length=value; OnPropertyChanged();} }
    //宽
    private string? width;
    public string? Width { get=>width; set { width=value;OnPropertyChanged(); } }
    //高
    private string? height;
    public string? Height { get=>height; set { height=value;OnPropertyChanged(); } }
    //材质
    private string? material;
    public string? Material { get=>material; set{material=value;OnPropertyChanged();} } 
    
    //是否为烟罩需要的物料
    private bool hood;
    public bool Hood { get=>hood;  set { hood=value;OnPropertyChanged(); } }
    //烟罩分组
    private HoodGroup_e hoodGroup;
    public HoodGroup_e HoodGroup { get=>hoodGroup;  set { hoodGroup=value;OnPropertyChanged(); } }
    //是否为天花需要的物料
    private bool ceiling;
    public bool Ceiling { get=>ceiling;  set { ceiling=value;OnPropertyChanged(); } }
    //天花烟罩分组
    private CeilingGroup_e ceilingGroup;
    public CeilingGroup_e CeilingGroup { get=>ceilingGroup;  set { ceilingGroup=value;OnPropertyChanged(); } }
    //天花烟罩规则
    private CeilingRule_e ceilingRule;
    public CeilingRule_e CeilingRule { get=>ceilingRule;  set { ceilingRule=value;OnPropertyChanged(); } }
    //是否为PST需要的物料
    private bool pst;
    public bool Pst { get=>pst; set { pst=value;OnPropertyChanged(); } }

    //计算规则
    private string? calcRule;
    public string? CalcRule { get=> calcRule;  set { calcRule=value; OnPropertyChanged();} }

    //是否需要独立托盘
    private bool pallet;
    public bool Pallet { get => pallet; set { pallet=value; OnPropertyChanged(); } }
    //不要打印标签，
    private bool noLabel;
    public bool NoLabel { get=>noLabel; set { noLabel=value;OnPropertyChanged(); } }
    //打印1张标签，默认false表示需要根据数量Quantity打印多张
    private bool oneLabel;
    public bool OneLabel { get=>oneLabel; set { oneLabel=value;OnPropertyChanged(); } }
    //排序
    private int order;
    public int Order { get => order; set { order=value; OnPropertyChanged(); } }
    #endregion


    #region 扩展属性1，其他信息(刷新的信息)
    //todo:等库存建立好了，这几个信息变成查询信息，不需要存储在数据库中
    private double inventory;//<=Cargo.Inventory
    public double Inventory { get => inventory; set { inventory=value; OnPropertyChanged(); } }
    private double unitCost;//<=Cargo.Price
    public double UnitCost { get => unitCost; set { unitCost=value; OnPropertyChanged(); } }
    #endregion


    #region 扩展属性2，查询信息
    //数量，用于添加装箱清单=>PackingItem.Quantity
    private double quantity;
    public double Quantity { get => quantity; set { quantity=value; OnPropertyChanged(); } }
    #endregion
}


public class MaterialItemString
{
    #region 基本信息
    public string? MtlNumber { get; set; } //物料编码
    public string? Description { get; set; } //中文描述/产品编号
    public string? EnDescription { get; set; } //英文描述
    public string? Type { get; set; } //类型/产品型号
    public string? Unit { get; set; }//PCS
    #endregion

    #region 其他信息(刷新的信息)
    public string? Inventory { get; set; }
    public string? UnitCost { get; set; }
    public string? Order { get; set; }
    #endregion

    #region 筛选信息(不变更的信息)
    public string? Length { get; set; } //长
    public string? Width { get; set; } //宽
    public string? Height { get; set; } //高
    public string? Material { get; set; } //材质

    public string? Hood { get; set; }
    public string? HoodGroup { get; set; }
    public string? Ceiling { get; set; }
    public string? CeilingGroup { get; set; }
    public string? CeilingRule { get; set; }
    public string? Pst { get; set; }

    public string? CalcRule { get; set; }//计算规则

    public string? Pallet { get; set; }//独立托盘，
    public string? NoLabel { get; set; }//不要打印标签，
    public string? OneLabel { get; set; }//打印1张标签，默认false表示需要根据数量Quantity打印多张
    #endregion
}